//1. 请求医院列表 所有类型
//请求医院列表参数的类型
import {notification} from 'antd';

export interface getHosListSearchParamsType {
  hoscode?: string,
  hosname?: string,
  hostype?: string,
  provinceCode?: string,
  cityCode?: string,
  districtCode?: string,
  status?: 0 | 1
}

export interface hosBookingRuleType{
  cycle: number,
  releaseTime: string,
  stopTime: string,
  quitDay: number,
  quitTime: string,
  rule: string[]
}

//请求医院列表的返回值中content数组中 每一条数据的类型
export interface hospitalDetailType{
  id: string,
  createTime: string,
  updateTime: string,
  isDeleted: number,
  param: {
    hostypeString: string,
    fullAddress: string
  },
  hoscode: string,
  hosname: string,
  hostype: string,
  provinceCode: string,
  cityCode: string,
  districtCode: string,
  address: string,
  logoData: string,
  intro: string,
  route: string,
  status: 0 | 1,
}
export interface hospitalListItemsType extends hospitalDetailType{
  bookingRule: hosBookingRuleType | null
}

//请求医院列表的返回值中content的数组类型
export type hospitalListContentType = hospitalListItemsType[];

//请求医院列表的返回值类型
export interface hospitalListReqReturnType {
  content: hospitalListContentType,
  pageable: {
    sort: {
      sorted: boolean,
      unsorted: boolean,
      empty: boolean
    },
    pageNumber: number,
    pageSize: number,
    offset: number,
    paged: boolean,
    unpaged: boolean
  },
  totalElements: number,
  totalPages: number,
  last: boolean,
  first: boolean,
  sort: {
    sorted: boolean,
    unsorted: boolean,
    empty: boolean
  },
  numberOfElements: number,
  size: number,
  number: number,
  empty: boolean
}

//2.三级联动省市区类型限制

export interface getProvinceItemType {

  id: number,
  createTime: string,
  updateTime: string,
  isDeleted: 0|1,
  param: object,
  parentId: number,
  name: string,
  value: string,
  dictCode: null,
  hasChildren: boolean

}
export type getProvinceReturnType = getProvinceItemType[]

//3.获取医院详细信息的类型设置

export interface getHosDetailType {
  bookingRule?: hosBookingRuleType,
  hospital?: hospitalListItemsType
}

//4. 医院排班科室的返回值类型
export interface hosScheduleItemType {
  depcode: string,
  depname: string,
  children: hosScheduleListType | null
}

export type hosScheduleListType = hosScheduleItemType[];

//5. 某个科室的排班时间请求类型
//参数类型
export interface hosScheduleRuleParamsType {
  page: number;
  limit: number;
  hoscode: string;
  depcode: string;
}

//返回值类型
export interface bookingScheduleListItem {
  workDate: string;
  workDateMd: null;
  dayOfWeek: string;
  docCount: number;
  reservedNumber: number;
  availableNumber: number;
  status: null;
}
export type bookingScheduleListType = bookingScheduleListItem[]

export interface hosScheduleRuleReturnType {
  total: number
  bookingScheduleList: bookingScheduleListType
  baseMap: {
    hosname: string
  };
}
//请求每日科室的详细列表类型
export interface scheduleWorkDateReqType{
  hoscode :string,
  depcode :string,
  workDate :string,
}

export interface getScheduleWorkDateItemType {
   id :string ,
   createTime :string ,
   updateTime :string ,
   isDeleted : 0 | 1,
   param : {
     dayOfWeek :string,
     depname :string ,
     hosname :string
  },
   hoscode :string,
   depcode :string,
   title :string,
   docname :string,
   skill :string,
   workDate :string,
   workTime :number,
   reservedNumber :number,
   availableNumber :number,
   amount :number,
   status :0 | 1,
   hosScheduleId :string

}
export type getScheduleWorkDateType = getScheduleWorkDateItemType[]
